home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-01-13 | 1.0 KB | 53 lines | [TEXT/PJMM] |
- unit MyErrorStrings;
-
- interface
-
- function ErrorStr (id: integer; err: OSErr): str255;
- function ErrorString (id: integer; err: OSErr; var e: str255): boolean;
-
- implementation
-
- function ErrorString (id: integer; err: OSErr; var e: str255): boolean;
- var
- h: handle;
- s, n: str255;
- left: longInt;
- oe: OSErr;
- p: ptr;
- len: integer;
- begin
- ErrorString := false;
- NumToString(err, n);
- e := n;
- h := GetResource('ERRS', id);
- if (h <> nil) & (h^ <> nil) then begin
- HNoPurge(h);
- left := GethandleSize(h);
- p := h^;
- while (left > 3) do begin
- BlockMove(p, @oe, 2);
- p := ptr(ord(p) + 2);
- len := BAND(p^, $FF);
- BlockMove(p, @s, len + 1);
- p := ptr(ord(p) + len + 1);
- if err = oe then begin
- e := s;
- ErrorString := true;
- leave;
- end;
- left := left - (2 + 1 + len);
- end;
- HPurge(h);
- end;
- end;
-
- function ErrorStr (id: integer; err: OSErr): str255;
- var
- dummy: boolean;
- e: str255;
- begin
- dummy := ErrorString(id, err, e);
- ErrorStr := e;
- end;
-
- end.